package br.edu.ufcg.lsd.wbis.control.util.matching;

/**
 * Matches objects of type given by the generics. Used primarily for
 * filtering/selecting objects of this type among other of the same type (as in
 * a set or list).
 * 
 * @author Renato Miceli
 */
public interface Matcher<T> {

	/**
	 * Verifies whether this object matches the patterns given by this matcher.
	 * 
	 * @param obj
	 *            the object to be matched.
	 * @return <code>true</code> if this object matches, <code>false</code>
	 *         otherwise
	 */
	public boolean matches(T obj);

}
